<?php
namespace app\common\lib\Exception;

use Exception;
use think\exception\Handle;
 
/**
 * Class ApiHandleException
 * @内部异常数据输出解决方案  render
 */
class ApiHandleException extends  Handle {
 
    //状态码
    public  $httpCode = 500;

    //重写继承类的方法 编写后 修改config.php的配置  exception_handle
    //配置之前 会出现 System Error之类的报错
    public function  render(Exception $e)
    {
        //判断如果是开启调试模式的话 作用是让服务端人员能够知道错误的具体位置
        if(config('app_debug') == true){
            return parent::render($e);
        }
        //判断一个对象是否是某个类的实例
        if($e instanceof  ApiException){
            $this->httpCode = $e->httpCode; //将ApiException的code传过来
        }
        return jsonShow(0, $e->getMessage(), [], $this->httpCode);
    }
}